1. Field of the Invention
The present invention relates to an interface device for, and to a method for interfacing between a plurality of application programs of a data management system, each application program requiring a device dependent message to run a transaction, and a client device capable of requesting a transaction to be run.
2. Related Art
Large computer systems represent a significant financial investment for the companies which have developed them. Often the cost of developing the software utilised by these computer systems is far greater than the cost of the hardware, and for this reason while the hardware is often upgraded or replaced, the software continues to be used, and is often reused in other computer systems, for many years. A large computer system, for example a system for accessing a database, typically includes software in the form of a number of application programs, which reside on a central mainframe computer, and many client devices, or terminals, which are remote from the mainframe and which are employed by users of the computer system to request information from the database. The application programs perform a number of functions, for example they may specify the dialogue with the client device, access the database (typically via a database management system) and apply certain business rules, e.g. specifying that a customer appointment can only be made once a customer order has been taken, that only certain products are available, etc. There are generally a large number of application programs, each of which performs a specific transaction in relation to the data stored on the database, for example accessing a particular account, placing an order, giving details of equipment at specific locations, billing enquiries, etc. The application programs on large computer systems may comprise millions of lines of software code, and thus represent a significant investment. The application programs are generally designed to be modular, and are often reused for example with different databases.
Many application programs written in the 1980s were designed to be accessed by so called xe2x80x9cdumbxe2x80x9d terminals, and thus were designed to receive, and to output, a device dependent datastream. A dumb terminal requires that the information sent to it includes hardware controls which are specific to the particular device employed as the dumb terminal, and which specify the manner in which any information sent to the dumb terminal is to be displayed.
With the advent of low cost personal computers (PC) many users of large computer systems utilise a PC as the client device to gain access to the mainframe computer. This can be achieved by running software on the PC which emulates a dumb terminal. Furthermore, users of PCs, or any other intelligent client device, wish to use the intelligence of their terminals to access, and manipulate the data stored by the mainframe computer in a more flexible manner than is possible with a dumb terminal.
A known technique for achieving this is xe2x80x9cscreen scrapingxe2x80x9d, also known as xe2x80x9cface liftingxe2x80x9d. Screen scraping techniques employ a dumb terminal emulator, but rather than requiring interaction with the user, a further program is run on the PC which automatically drives the dialogue with the mainframe computer, via the dumb terminal emulator, without requiring interaction with the user. Once the required data from the mainframe has been received at the PC, the data can be combined and displayed in any format chosen by the user, rather than being restricted to the screen format dictated by the mainframe computer. PC users are thus able to specify a more modern, user friendly screen interface. Furthermore the screen scraping software on the PC can be programd to acquire data from a number of formatted dumb terminal screens output by the mainframe computer, and to display this data on a single screen. For example, if the computer system comprises the customer database for a telephone operator, the telephone number of a customer input to the screen scraping program on the PC could be used to acquire a profile of the customer i.e. his address, the telephone equipment he has installed, the date of his last bill, etc. Thus the PC user can decide on new functionality that he requires from the large computer system, and achieve this functionality, by programming screen scraping software local to the PC, far more rapidly than the new functionality could be achieved by reprogramming the large application programs resident on the mainframe computer. Such screen scraping software can be purchased, for example from Attachmate Corporation (Attachmate Sales UK Ltd, Attachmate House, 102 Markham Mews, Broad Street, Wokingham, Berkshire, RG111AH) who sell screen scraping software products called xe2x80x9cExtra!xe2x80x9d and xe2x80x9cExtra! for Windowsxe2x80x9d.
Although screen scraping rapidly solves the PC users immediate requirements, a number of severe problems for the computer system as a whole are created. Since the screen scraping software relies on having intimate knowledge of the device dependent datastream output by the application programs, i.e. it needs to know precisely where particular items of data appear in the formatted screens sent by the application programs, any change which is made to the application programs which affects their output will affect the operation of the screen scraping software. Thus whenever a development is made to an application program all the screen scraping software on all the intelligent client devices served by the mainframe computer will need to be altered, at the same time. This severe configuration management problem may mean that there is pressure from the PC users for the application programs not to be improved or updated, so as to become out of step with their screen scraping facilities. This results in the front end PC clients constraining development of the backend mainframe.
A further problem is created due to the ease with which many transactions may be requested via screen scraping software by the PC client of the mainframe application programs. Since these transactions are run serially by the PC client, the response time at the PC is adversely affected, and the network traffic between the PC and the mainframe is increased substantially. Furthermore, use of screen scraping by a significant number of PC clients may cause degradation in the performance of the mainframe computer, which was designed and tuned to deal with the work rates of a user interacting with a dumb terminal client.
According to a first aspect of the present invention there is provided an interface device for interfacing between a plurality of application programs of a data management system, each application program requiring a device dependent message to run a transaction, and a client device capable of requesting a transaction to be run, the interface device comprising:
first input means for receiving a device independent message containing a keyword from the client device,
first output means for sending a device dependent message to an application program,
second input means for receiving a device dependent message from an application program,
second output means for sending a device independent message to the client device,
memory means for storing keywords, data identifying the transaction(s) to which each of the keywords relates, and the device dependent messages required to run each of the transactions, and
processing means for extracting the keyword(s) from a message received by the first input means, accessing the memory means to determine the device dependent message(s) associated with the keyword(s), sending said device dependent message(s) via the first output means to the application program(s), extracting data from a message received by the second input means, and sending said data within a device independent message to the client device via the second output means.
Thus, embodiments of the present invention, by providing an interface device which facilitates the translation of a device independent message from the client device, to a device dependent message as expected by the application program, and vice versa, allow the client device to be isolated from the precise requirements of the applications program.
A PC client making a request of a data management system comprising an interface device according to the present invention thus does not need to know, for example the screen co-ordinates required by the particular application program to run a particular transaction. The PC client simply needs to identify the relevant transaction, and data required, via the keyword sent in a device independent message to the interface device. The interface device will then relate the keyword sent to the device dependent message required to run a particular transaction via the application program. If the application program is altered so that it requires a different device dependent message, or so that it outputs the results of a transaction in a different format, only the appropriate device dependent message stored within the memory means of the interface device need be altered. The PC client can continue to access the same application program in the same manner via the same keyword, so that as improvements are made to application programs no changes are required to the many PC clients.
Preferably a single keyword may be associated with more than one device dependent message within the memory means of the interface device. This allows a single request from a client device to cause the interface device to run a number of transactions, and to return information from a plurality of formatted screens output by the application program(s) to the client device via a device independent message. Thus compared to screen scraping techniques multiple serial communications between the client device and the application program(s) have been replaced by a single communication. The response times experienced by a user at the client device are thus greatly improved, and the network traffic between the client device and the central computing resource is greatly reduced.
Preferably a data management system comprising a central computing resource having an interface device according to the present invention also comprises a dialogue manager for receiving requests for transactions from client devices, which dialogue manager is able to distinguish between device independent messages, and device dependent messages, and to pass device independent messages to the interface device. This allows the data management system to support both dumb terminals communicating with the central computing resource via device dependent datastreams, and intelligent client devices communicating with the central computing resource via device independent messages.
According to a second aspect of the present invention there is provided a method for interfacing between a plurality of application programs of a data management system, each application program requiring a device dependent message to run a transaction, and a client device, the method comprising the steps of:
i) receiving from the client device a device independent message containing a keyword,
ii) comparing the keyword from the device independent message with stored keywords, each of which is associated with one or more stored device dependent messages, to find a matching keyword,
iii) sending the device dependent message or messages associated with the stored matching keyword to the application program(s),
iv) receiving from one or more application programs a device dependent message, which contains data retrieved as a result of a transaction,
v) extracting data in accordance to the keyword(s) from the device dependent message, and
vi) sending the extracted data within a device independent message to the client device.